<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>予約変数 {$smarty}</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Smarty マニュアル">
<link rel="up" href="language.variables.html" title="Chapter 4. 変数">
<link rel="prev" href="language.config.variables.html" title="設定ファイルから読み込まれた変数">
<link rel="next" href="language.modifiers.html" title="Chapter 5. 変数の修飾子">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">予約変数 {$smarty}</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="language.config.variables.html">Prev</a> </td>
<th width="60%" align="center">Chapter 4. 変数</th>
<td width="20%" align="right"> <a accesskey="n" href="language.modifiers.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" title="予約変数 {$smarty}">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="language.variables.smarty"></a>予約変数 {$smarty}</h2></div></div></div>
<p>
  PHP の予約変数 <em class="parameter"><code>{$smarty}</code></em> を使用すると、
  環境変数やリクエスト変数にアクセスすることができます。
  アクセスできる内容について、以下に説明します。
 </p>
<div class="sect2" title="リクエスト変数">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.request"></a>リクエスト変数</h3></div></div></div>
<p>
   <code class="literal">$_GET</code>、<code class="literal">$_POST</code>、
   <code class="literal">$_COOKIE</code>、<code class="literal">$_SERVER</code>、
   <code class="literal">$_ENV</code> および <code class="literal">$_SESSION</code>
   (<a class="link" href="variable.request.vars.order.html" title="$request_vars_order">
   <code class="varname">$request_vars_order</code></a>
   および <a class="link" href="variable.request.use.auto.globals.html" title="$request_use_auto_globals">
   <code class="varname">$request_use_auto_globals</code></a> を参照してください)
   といった <a class="ulink" href="http://php.net/reserved.variables" target="_top">リクエスト変数</a>
   にアクセスするには、下の例のようにします。
  </p>
<div class="example">
<a name="id2754660"></a><p class="title"><b>Example 4.7. リクエスト変数の表示</b></p>
<div class="example-contents"><pre class="programlisting">

{* ($_GET) http://www.example.com/index.php?page=foo から page の内容を表示 *}
{$smarty.get.page}

{* ($_POST['page']) フォームから送信された変数"page"の値を表示 *}
{$smarty.post.page}

{* クッキーに登録された"username"の値を表示 ($_COOKIE['username']) *}
{$smarty.cookies.username}

{* サーバ変数"SERVER_NAME"の値を表示 ($_SERVER['SERVER_NAME']) *}
{$smarty.server.SERVER_NAME}

{* 環境変数"PATH"の値を表示 *}
{$smarty.env.PATH}

{* phpのセッション変数"id"の値を表示 ($_SESSION['id']) *}
{$smarty.session.id}

{* get/post/cookies/server/envの値から、変数"username"の値を表示 *}
{$smarty.request.username}

   </pre></div>
</div>
<br class="example-break"><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
    歴史的な理由から、<em class="parameter"><code>{$SCRIPT_NAME}</code></em> には直接アクセスできます。
    しかし、この値にアクセスする方法としては
    <em class="parameter"><code>{$smarty.server.SCRIPT_NAME}</code></em> が推奨されています。
   </p>
<pre class="programlisting">

&lt;a href="{$SCRIPT_NAME}?page=smarty"&gt;click me&lt;/a&gt;
&lt;a href="{$smarty.server.SCRIPT_NAME}?page=smarty"&gt;click me&lt;/a&gt;

</pre>
</div>
</div>
<div class="sect2" title="{$smarty.now}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.now"></a>{$smarty.now}</h3></div></div></div>
<p>
   現在の <a class="ulink" href="http://php.net/function.time" target="_top">タイムスタンプ</a>
   にアクセスするには <em class="parameter"><code>{$smarty.now}</code></em> を使用します。
   この値は、いわゆるエポック (1970年1月1日) からの経過秒数が含まれます。
   また、これを直接
   <a class="link" href="language.modifier.date.format.html" title="date_format"><code class="varname">date_format</code>
   </a> 修飾子に渡して表示させることができます。実行するたびに
   <a class="ulink" href="http://php.net/function.time" target="_top"><code class="varname">time()</code></a>
   がコールされることに注意しましょう。つまり、全体を処理するのに３秒かかるスクリプトがあったとして、
   その最初と最後でそれぞれ <em class="parameter"><code>$smarty.now</code></em>
   をコールすると、その値には２秒の差が生じます。
  </p>
<div class="informalexample"><pre class="programlisting">

{* date_format 修飾子を用いて、現在の日付と時刻を表示します *}
{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}

   </pre></div>
<p>
  </p>
</div>
<div class="sect2" title="{$smarty.const}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.const"></a>{$smarty.const}</h3></div></div></div>
<p>
   PHP 定数の値に直接アクセスできます。<a class="link" href="smarty.constants.html" title="Chapter 11. 定数">smarty 定数</a> も参照してください。
   </p>
<div class="informalexample"><pre class="programlisting">

&lt;?php
// php で定義されている定数
define('MY_CONST_VAL','CHERRIES');
?&gt;

</pre></div>
<p>定数を出力するテンプレート</p>
<div class="informalexample"><pre class="programlisting">

{$smarty.const.MY_CONST_VAL}

</pre></div>
</div>
<div class="sect2" title="{$smarty.capture}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.capture"></a>{$smarty.capture}</h3></div></div></div>
<p>
   組み込みの
   <a class="link" href="language.builtin.functions.html#language.function.capture" title="{capture}">
   <code class="varname">{capture}..{/capture}</code></a>
   関数でキャプチャしたテンプレートの出力にアクセスするには
   <em class="parameter"><code>{$smarty.capture}</code></em> 変数を使用します。
   詳細は <a class="link" href="language.builtin.functions.html#language.function.capture" title="{capture}">
    <code class="varname">{capture}</code></a> のページを参照してください。
  </p>
</div>
<div class="sect2" title="{$smarty.config}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.config"></a>{$smarty.config}</h3></div></div></div>
<p>
   <em class="parameter"><code>{$smarty.config}</code></em> 変数は、読み込まれた
   <a class="link" href="language.config.variables.html" title="設定ファイルから読み込まれた変数">config 変数</a>
   を参照するのに使用できます。
   <em class="parameter"><code>{$smarty.config.foo}</code></em> は
   <em class="parameter"><code>{#foo#}</code></em> と同義です。詳細は
   <a class="link" href="language.function.config.load.html" title="{config_load}">{config_load}</a>
   のページを参照してください。
  </p>
</div>
<div class="sect2" title="{$smarty.section}、{$smarty.foreach}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.loops"></a>{$smarty.section}、{$smarty.foreach}</h3></div></div></div>
<p>
   <em class="parameter"><code>{$smarty.section}</code></em> 変数および
   <em class="parameter"><code>{$smarty.foreach}</code></em> 変数は、
   <a class="link" href="language.function.section.html" title="{section},{sectionelse}"><code class="varname">{section}</code></a>
   および
   <a class="link" href="language.function.foreach.html" title="{foreach},{foreachelse}"><code class="varname">{foreach}</code></a>
   のループプロパティを参照するために使用します。
   この中には <code class="varname">.first</code>、<code class="varname">.index</code>
   といった有用な値が含まれます。
  </p>
</div>
<div class="sect2" title="{$smarty.template}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.template"></a>{$smarty.template}</h3></div></div></div>
<p>
   現在処理中のテンプレートの名前を返します。
   次の例の <code class="filename">container.tpl</code> と、そこからインクルードしている
   <code class="filename">banner.tpl</code> の両方で
   <em class="parameter"><code>{$smarty.template}</code></em> を使用しています。
  </p>
<pre class="programlisting">

&lt;b&gt;Main container is {$smarty.template}&lt;/b&gt;
{include file='banner.tpl'}

</pre>
<p>
    出力は、このようになります。
    </p>
<pre class="programlisting">

&lt;b&gt;Main page is container.tpl&lt;/b&gt;
banner.tpl

</pre>
</div>
<div class="sect2" title="{$smarty.version}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.version"></a>{$smarty.version}</h3></div></div></div>
<p>
   このテンプレートをコンパイルした Smarty のバージョンを返します。
  </p>
<pre class="programlisting">

&lt;div id="footer"&gt;Powered by Smarty {$smarty.version}&lt;/div&gt;

</pre>
</div>
<div class="sect2" title="{$smarty.ldelim}、{$smarty.rdelim}">
<div class="titlepage"><div><div><h3 class="title">
<a name="language.variables.smarty.ldelim"></a>{$smarty.ldelim}、{$smarty.rdelim}</h3></div></div></div>
<p>
   これらの変数を使用して、左右のデリミタをそのまま表示します。
   <a class="link" href="language.function.ldelim.html" title="{ldelim},{rdelim}">
   <code class="varname">{ldelim}、{rdelim}</code></a> と同じです。
  </p>
<p>
   <a class="link" href="language.variables.html#language.assigned.variables" title="PHP から割り当てられた変数">assigned variables</a> および
   <a class="link" href="language.config.variables.html" title="設定ファイルから読み込まれた変数">config variables</a>
   も参照してください。
  </p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="language.config.variables.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="language.variables.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="language.modifiers.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">設定ファイルから読み込まれた変数 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> Chapter 5. 変数の修飾子</td>
</tr>
</table>
</div>
</body>
</html>
